#include <REGX52.H>
#include <Buzzer.h>
#include <Delay.h>
#include <Key.h>
#include <Nixie.h>
#include <Timer0.h>
sbit Motor=P1^0;                    //根据原理图找到电动机的IO口
unsigned char compare,count;          //定义比较值与计数值
unsigned char KeyNum,Speed;           //定义键码值和速度档
void main()
{  
	Timer0Init();                   //初始化定时器
	while(1)
	{
	  KeyNum=Key();                    //获取键码值
		if(KeyNum==1) 
		{ 
			Speed++;
			Speed%=4;                 //大于等于4自动清零
		  if(Speed==0) {compare=0;}   //根据速度档位改变比较值大小，进而改变高电平和低电平在一个周期内所占的时间比，进而实现改变转速
		  if(Speed==1) {compare=5;}
		  if(Speed==2) {compare=50;}
	      if(Speed==3) {compare=100;}
		}
		Nixie(1,Speed);               //显示速度挡位
	}
}

void Timer0_Routine() interrupt 1
{
	TL0 = 0x9C;		//重新恢复初始值FF9C，即65435
	TH0 = 0xFF;		//???????
  count++;
	count%=100;
	if(count<compare)
	{
		Motor=1;                      //电动机IO口是高电平时就可以转
	}
	else
	{
		Motor=0;
	}
}
